function mergeArrays(arrays) {
  const graph = {}; // 图数据结构表示子数组之间的交集关系

  // 构建图的连通性关系
  for (let i = 0; i < arrays.length; i++) {
    const array1 = arrays[i];
    const key1 = String(i);

    // 检查当前子数组是否与其他子数组有交集
    for (let j = i + 1; j < arrays.length; j++) {
      const array2 = arrays[j];
      const key2 = String(j);

      // 检查两个子数组是否有交集
      const hasIntersection = array1.some((value) => array2.includes(value));

      if (hasIntersection) {
        // 添加连通关系到图中
        if (!graph[key1]) {
          graph[key1] = new Set();
        }
        graph[key1].add(key2);

        if (!graph[key2]) {
          graph[key2] = new Set();
        }
        graph[key2].add(key1);
      }
    }
  }

  const mergedArrays = []; // 用于存储合并后的数组
  const visited = new Set(); // 已访问过的子数组的索引

  // 遍历每个子数组，如果没有被访问过，则进行深度优先搜索合并
  for (let i = 0; i < arrays.length; i++) {
    const key = String(i);

    if (!visited.has(key)) {
      const mergedArray = [];
      mergeConnectedArrays(key, mergedArray, visited, graph, arrays);
      mergedArrays.push(Array.from(new Set(mergedArray))); // 去除合并后的数组中的重复值
    }
  }

  return mergedArrays;
}

// 深度优先搜索（DFS）合并具有连通关系的子数组
function mergeConnectedArrays(key, mergedArray, visited, graph, arrays) {
  mergedArray.push(...arrays[Number(key)]);
  visited.add(key);

  if (graph[key]) {
    for (const neighbor of graph[key]) {
      if (!visited.has(neighbor)) {
        mergeConnectedArrays(neighbor, mergedArray, visited, graph, arrays);
      }
    }
  }
}

// 示例用法
const arrays = [
  [1, 2, 3],
  [2],
  [6],
  [7],
  [2, 3],
  [4, 5, 6],
  [7, 8, 9],
  [5, 6, 7],
];
const mergedArrays = mergeArrays(arrays);
console.log(mergedArrays);

console.log(
Math.max(2,2));


// 创建一个空的 Set
const mySet = new Set();

// 添加数组对象到 Set 中
const obj1 = { id: 1, name: 'Alice' };
const obj2 = { id: 1, name: 'Bob' };
const obj3 = { id: 1, name: 'Bob' }; // 与 obj1 具有相同的属性值

mySet.add(obj1);
mySet.add(JSON.stringify(obj2));
mySet.add(JSON.stringify(obj3));

console.log(mySet.size,"ssss"); // 输出 2，只有两个对象被成功添加到 Set 中

// 遍历 Set 中的元素
mySet.forEach(item => {
  console.log(item);
});